package com.mazaiting.generator.controller;

import com.mazaiting.generator.domain.form.PropItemForm;
import com.mazaiting.generator.domain.query.PropItemQuery;
import com.mazaiting.generator.domain.vo.PropItemVO;
import com.mazaiting.generator.service.IPropItemService;
import com.mazaiting.mybatisplus.domain.vo.BasePageVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;

/**
* 属性组
*
* @author mazaiting
* @datetime 2022-11-15 00:09:01
*/
@Slf4j
@RestController
@RequestMapping("generator/v1/propItem")
@RequiredArgsConstructor
public class PropItemController {

    private final IPropItemService propItemService;

    /**
     * 分页数据
     * @param propItemQuery 查询对象
     * @return 分页数据
     */
    @GetMapping("page")
    public BasePageVO<PropItemVO> page(@Valid PropItemQuery propItemQuery){
        return propItemService.page(propItemQuery);
    }

    /**
     * 根据 ID 获取数据
     * @param id ID
     * @return 数据信息
     */
    @GetMapping("{id}")
    public PropItemVO get(@PathVariable("id") Long id){
        return propItemService.getInfoById(id);
    }

    /**
     * 保存数据
     * @param propItemForm 表单信息
     * @return true: 新增成功; false: 新增失败
     */
    @PostMapping
    public boolean save(@Valid PropItemForm propItemForm){
        return propItemService.save(propItemForm);
    }

    /**
     * 修改数据
     * @param propItemForm 表单信息
     * @return true: 修改成功; false: 修改失败
     */
    @PutMapping
    public boolean update(@Valid PropItemForm propItemForm){
        return propItemService.update(propItemForm);
    }

    /**
     * 删除修改数据
     * @param ids id 列表
     * @return true: 删除成功; false: 删除失败
     */
    @DeleteMapping
    public boolean delete(@RequestParam("ids") String ids){
        return propItemService.deleteByIds(ids);
    }
}